package main

import (
	"context"
	"fmt"
	"gzgd/test"
	"log"
	"net"

	"google.golang.org/grpc"
	"google.golang.org/grpc/reflection"
)

//测试grpc

type server struct{}

func (s *server) SayHello(ctx context.Context, in *test.Test) (*test.Hello, error) {
	// return &test.Hello{Msg: strconv.Itoa(int(in.Age)) + "岁，是学生"}, nil
	return &test.Hello{Msg: fmt.Sprintf("%d岁，是程序员", in.Age)}, nil
	//试试fmt.sprintf拼接
}

func main() {

	//创建grpc服务器对象
	s := grpc.NewServer()
	//注册服务，在grpc服务端注册服务
	test.RegisterGreeterServer(s, &server{})

	//在grpc服务端注册反射服务，方便grpcurl等调试工具获取服务信息，像是服务定义，方法，属性等
	reflection.Register(s)

	//监听端口
	lis, err := net.Listen("tcp", ":8086")
	if err != nil {
		log.Panic("监听端口错误", err)
	}
	//开启服务端
	err = s.Serve(lis)
	if err != nil {
		log.Panic("绑定端口错误", err)
	}

}
